// 路由拦截
import type { Router } from 'uni-mini-router'
import { getToken } from '@/utils/auth'

// 设置一些白名单
const whiteList = ['login']
export function userRouternext(router: Router) {
  router.beforeEach((to, from, next) => {
    // next入参 false 以取消导航
    const token = getToken()
    console.log('userRouternext@@@@@@@@@@')
    // 判断是否需要登录
    if (token) {
      // 如果登录了就放行
      next()
    }
    else {
      // 判断一下是否白名单里面的东西 如果是的话就代表直接跳转无需判断是否有token
      if (whiteList.includes(to.name as string)) {
        // 在免登录白名单，直接进入
        // console.log('我在白名单里面');
        next()
      }
      else {
        // 判断不是白名单 还没有token值 直接进去登录页面页面
        next({
          name: 'login',
        })
      }
    }

    // next();
  })

  router.afterEach((to) => {
    // console.log(from);
    console.log('afterEach@@@@@@@@@@')
    const token = getToken()

    if (!token && to && to.name !== 'login') {
      // 如果没有登录且目标路由不是登录页面则跳转到登录页面

      if (whiteList.includes(to.name as string)) {
        // 在免登录白名单，直接进入
        // console.log('我在白名单里面');
      }
      else {
        router.push({
          name: 'login',
          params: { ...to.query },
        })
      }
    }
    else if (token && to && to.name === 'login') {
      // 如果已经登录且目标页面是登录页面则跳转至首页
      router.replaceAll({ name: 'home' })
    }
  })
}
